<?php
namespace app\demo\controller;

use app\demo\model\User;
use app\demo\model\UserType;


class Test
{

    public function index(){

        $user = new User();
        $user -> set_name('ThinkPHP');
        $user -> set_age(10);
        $user -> show();
    }

    public function test(){

        //静态调用set_name(),set_age()
        //当前类User和父类中都没有set_name静态方法,于是自动触发父类__callStatic()方法
        //父类Member中的__callStatic($func,$arguments)是系统魔术方法
        //在__callStatic方法中,方法名set_name转换为变量$type和$name
        //并根据$type,完成属性的动态赋值或读取操作
        //set_name(),set_age()分别完成了对$memberdata[$feature]属性的动态赋值操作
        User::set_name('ThinkPHP11');
        User::set_age(10111);
        User::showStatic();
    }

    public function test1(){

        //1. 创建一个自定义结果集,以二维数组呈现,来模拟数据库查询结果
        $data = [
            ['id' => 1,'name' => 'Peter','age' => 20,'salary' => 4000],
            ['id' => 2,'name' => 'Jack','age' => 26,'salary' => 5000],
            ['id' => 3,'name' => 'Tom','age' => 30,'salary' => 6800],
        ];
        dump($data);
        //2. 模型类User静态调用select()方法,参数是数据库查询结果集(以二维数据模拟)
        //注意:User类中并没有定义:静态方法 select(),此时会自动调用父类Model中的__callStatic()方法
        //该静态魔术方法会自动将当前调用的select($data)的方法名和参数传给:
        //call_user_func_array(['Query','select'], $data);
        $result=UserType::select($data);
//        $result=User::select($data);
        dump($result);

        //3. 格式化输出查询结果
        //设置表头信息
        $caption = '<h3 align="center">学生信息表</h3>';

        //将传入的表中记录集,以表格方式格式化输出
        //设置表头信息
        $table = $caption.'<table border="1" cellspacing="0" cellpadding="0" width="300" align="center"><th>id</th><th>姓名</th><th>年龄</th><th>工资</th>';

        //根据表中记录数量,循环输出
        foreach ($result as $value) {
            $table = $table. '<tr>';
            $table = $table. '<td>'.$value['id'].'</td>';
            $table = $table. '<td>'.$value['name'].'</td>';
            $table = $table. '<td>'.$value['age'].'</td>';
            $table = $table. '<td>'.$value['salary'].'</td>';
            $table = $table. '</tr>';
        }

        echo $table;
    }
}